package com.itheima.d5_generics;

import java.util.ArrayList;

public class Test1 {
    public static void main(String[] args) {
        // 目标：认识泛型
        //泛型若没有指定，默认就是Object类型
        ArrayList list = new ArrayList();
        list.add("Hello");//0
        list.add("Hello");
        list.add(1234);//2
        list.add(true);

        //当数据传入到集合中，数据的类型会提升为Object
        String o = (String) list.get(0);
        //强制转换类型，带来类型转换的异常
        String o1 = (String) list.get(2);
        System.out.println("o1 = " + o1);

        //通常会给泛型指定一个具体的类型
        ArrayList<String> names = new ArrayList<>();
        //names.add(100);//报错，在编译的时候就可以对类型进行检查，如果类型不对就会报错

        //泛型本质上是一个类型变量，可以使用类型来赋值而且只能使用引用类型来赋值
        ArrayList<String> list1 = new ArrayList<>();//E ->String
        ArrayList<Integer> list2 = new ArrayList<>();//E ->Integer
    }
}




